#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
自定义编译器选项示例 - SCons工具格式
演示如何通过CUST_OPTION环境变量自定义编译器参数
"""

import logging

def generate(env):
    """
    SCons工具的generate函数
    这个函数会被构建系统调用，用于修改编译器参数
    
    Args:
        env: SCons环境对象
    """
    logging.info("Applying custom compiler options...")
    
    # 添加自定义编译标志
    env.Append(CCFLAGS=['-DCUSTOM_BUILD=1'])
    env.Append(CXXFLAGS=['-DCUSTOM_BUILD=1'])
    
    # 添加优化选项
    env.Append(CCFLAGS=['-O3', '-march=native'])
    env.Append(CXXFLAGS=['-O3', '-march=native'])
    
    # 添加链接选项
    env.Append(LINKFLAGS=['-static-libgcc', '-static-libstdc++'])
    
    # 添加库路径和头文件路径示例
    # env.Append(LIBPATH=['/usr/local/lib'])
    # env.Append(CPPPATH=['/usr/local/include'])
    
    # 修改编译器（示例）
    env['CXX'] = 'g++-11'
    env['CC'] = 'gcc-11'
    
    # 添加版本宏定义
    env.Append(CPPDEFINES=[('VERSION_MAJOR', 1), ('VERSION_MINOR', 0)])
    
    logging.info("Custom compiler options applied successfully")
    logging.info(f"  - Custom CCFLAGS: {env['CCFLAGS']}")
    logging.info(f"  - Custom CXXFLAGS: {env['CXXFLAGS']}")
    logging.info(f"  - Custom LINKFLAGS: {' '.join(env['LINKFLAGS'])}")
    logging.info(f"  - Custom compiler: {env['CXX']}")

def exists(env):
    """
    SCons工具的exists函数
    检查工具是否可用
    
    Args:
        env: SCons环境对象
        
    Returns:
        bool: 总是返回True，表示工具可用
    """
    return True